#pragma once

#include "GameManager.h"

class BaseState
{
   bool m_bStateActive;
protected:
   StateList m_iStateType;
public:
   BaseState(void);
   ~BaseState(void);

   // Do not force derived classes to define OnEnter or OnExit, but still give them the option
   virtual void OnEnter(){m_bStateActive = true;}
   virtual void OnExit(){m_bStateActive = false;}
   virtual void Update(float fTime) = 0;
   virtual void Render() = 0;
   virtual void GetInput() = 0;

   StateList GetStateType(){return m_iStateType;}

   void SetActive(bool bActive){m_bStateActive = bActive;}
   bool IsActive(){return m_bStateActive;}
};

